using System;
using System.Collections;

namespace Northwind.DataAccess
{
	
	public abstract class Employee
	{
	
		public System.String LastName
		{
			get { return this.lastName; }
			set { this.lastName = value; }
		}

		public System.String FirstName
		{
			get { return this.firstName; }
			set { this.firstName = value; }
		}

		public System.String Title
		{
			get { return this.title; }
			set { this.title = value; }
		}

		public System.String TitleOfCourtesy
		{
			get { return this.titleOfCourtesy; }
			set { this.titleOfCourtesy = value; }
		}

		public System.DateTime BirthDate
		{
			get { return this.birthDate; }
			set { this.birthDate = value; }
		}

		public System.DateTime HireDate
		{
			get { return this.hireDate; }
			set { this.hireDate = value; }
		}

		public System.String Address
		{
			get { return this.address; }
			set { this.address = value; }
		}

		public System.String City
		{
			get { return this.city; }
			set { this.city = value; }
		}

		public System.String Region
		{
			get { return this.region; }
			set { this.region = value; }
		}

		public System.String PostalCode
		{
			get { return this.postalCode; }
			set { this.postalCode = value; }
		}

		public System.String Country
		{
			get { return this.country; }
			set { this.country = value; }
		}

		public System.String HomePhone
		{
			get { return this.homePhone; }
			set { this.homePhone = value; }
		}

		public System.String Extension
		{
			get { return this.extension; }
			set { this.extension = value; }
		}

		public System.Byte[] Photo
		{
			get { return this.photo; }
			set { this.photo = value; }
		}

		public System.String Notes
		{
			get { return this.notes; }
			set { this.notes = value; }
		}

		public System.String PhotoPath
		{
			get { return this.photoPath; }
			set { this.photoPath = value; }
		}

		public Northwind.DataAccess.Employee ReportsTo
		{
			get { return this.reportsTo; }
			set { this.reportsTo = value; }
		}

		public IList/*Northwind.DataAccess.Territory */ Territories
		{
			get { return this.territories; }
		}

//		protected void OnCreate(object[] args)
//		{
//		}
		
//		protected void OnMaterialize()
//		{
//		}
		
//		protected void OnValidate()
//		{
//		}
		
		protected abstract System.String lastName { get; set; }

		protected abstract System.String firstName { get; set; }

		protected abstract System.String title { get; set; }

		protected abstract System.String titleOfCourtesy { get; set; }

		protected abstract System.DateTime birthDate { get; set; }

		protected abstract System.DateTime hireDate { get; set; }

		protected abstract System.String address { get; set; }

		protected abstract System.String city { get; set; }

		protected abstract System.String region { get; set; }

		protected abstract System.String postalCode { get; set; }

		protected abstract System.String country { get; set; }

		protected abstract System.String homePhone { get; set; }

		protected abstract System.String extension { get; set; }

		protected abstract System.Byte[] photo { get; set; }

		protected abstract System.String notes { get; set; }

		protected abstract System.String photoPath { get; set; }

		protected abstract Northwind.DataAccess.Employee reportsTo { get; set; }

		protected abstract IList territories { get; }

	}
}
